/**
 * @param {string} s
 * @return {string}
 */
var sortVowels = function(s) {
    // 定义元音字母集合（包含大小写）
    const vowelsSet = new Set(['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']);
    
    // 提取所有元音字母并按ASCII值排序
    const vowels = [];
    for (const char of s) {
        if (vowelsSet.has(char)) {
            vowels.push(char);
        }
    }
    vowels.sort((a, b) => a.charCodeAt(0) - b.charCodeAt(0));
    
    // 重建字符串：辅音保持原位，元音按排序结果依次放置
    let vowelIndex = 0;
    const result = [];
    for (const char of s) {
        if (vowelsSet.has(char)) {
            result.push(vowels[vowelIndex++]);
        } else {
            result.push(char);
        }
    }
    
    return result.join('');
};

// 测试示例
console.log(sortVowels("lEetcOde")); // 输出: "lEOtcede"
console.log(sortVowels("lYmpH"));    // 输出: "lYmpH"
